package com.woniu108.product.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu108.carService.commos.dto.StoreProductDto;
import com.woniu108.product.model.StoreProduct;
import com.woniu108.product.param.DeleteStoreProductParam;
import com.woniu108.product.param.InsertStoreProductParam;
import com.woniu108.product.param.OutStorageParam;
import com.woniu108.product.param.PutStorageParam;

import java.util.List;

/**
 * <p>
 * 门店库存表 服务类
 * </p>
 *
 * @author yanxi
 * @since 2024-05-23
 */
public interface StoreProductService extends IService<StoreProduct> {
    /**
     * 查询门店库存
     * @param storeAdminId 门店管理员账号id
     * @return 门店库存信息
     */
    List<StoreProductDto> findMyStoreProduct(String storeAdminId);

    /**
     * 新增门店库存商品
     * @param param 商品种类编号,商品品牌编号,商品详细名称,库存,门店商品描述,门店商品图片,门店管理员账号
     * @return boolean值
     * @throws Exception 文件处理报错
     */
    Boolean insertStoreProduct(InsertStoreProductParam param) throws Exception;

    /**
     * 商品入库
     * @param param 门店商品编号 入库数量 门店管理员账号
     * @return boolean值
     */
    Boolean putStorage(PutStorageParam param);
    /**
     * 商品出库
     * @param param 门店商品编号 入库数量 门店管理员账号
     * @return boolean值
     */
    Boolean outStorage(OutStorageParam param);
    /**
     * 删除某个商品
     * @param param 门店商品编号  门店管理员账号
     * @return boolean值
     */
    Boolean deleteStoreProduct(DeleteStoreProductParam param);

    /**
     * 查单个商品
     * @param spInfoId 门店商品编号
     * @return  门店库存信息
     */
    StoreProductDto findOneStoreProductById(Integer spInfoId);
}
